#ifndef OBJECT_H
#define OBJECT_H

#include "Framework/Prerequisites.h"


namespace tyro
{
	namespace Geometry
	{
		class Object
		{
		public:
			
			Object();
			Object(const String& name);

			virtual const Math::Matrix4f& GetParentWorldTransform(void) const; 
			void NotifyAttached( Scene::Node* parent );
			virtual void NotifyActiveCamera(Camera::Camera* camera); 
			virtual void UpdateRenderQueue(Scene::IRenderQueue* renderQueue) = 0;
			virtual const bool IsVisible(void) const { return isVisible; }
			void SetVisible(bool isVisible) { this->isVisible = isVisible; }
			virtual const String& GetName( void ) const;


		protected:

			String name;
			Scene::ISceneManager* sceneManager;
			bool isVisible; 
			Scene::Node* parentNode;

		private:
		};
	}
}
#endif